|
A feature toggle, (also feature switch, feature flag, feature flipper, conditional feature, etc.) is a technique in software development that attempts to provide an alternative to maintaining multiple source-code branches (known as feature branches). Continuous release and continuous deployment provide developers with rapid feedback about their coding. This requires the integration of their code changes as early as possible. Feature branches introduce a bypass to this process. Feature toggles bring developers back to the track, but the execution paths of their features are still "dead" if a toggle is "off". But the effort is low to enable the new execution paths just by setting a toggle to "on". The technique allows developers to release a version of a product that has unfinished features. These unfinished feature are hidden (toggled) so they do not appear in the user interface. This allows many small incremental versions of software to be delivered without the cost of constant branching and merging. Another benefit of feature flags are canary launches. A canary launch (aka canary deployment or canary release) is rolling features out to a small number of users to assess the reaction of the overall system. A canary launch allows you to roll out a feature slowly, and measure the reaction from real user “canaries”, looking for early indicators of danger. If a feature is not good, it can be rolled back. Canary launches are a best practice for agile development organizations practicing continuous delivery to move faster. 〔http://blog.launchdarkly.com/canary-launches-how-and-why-to-canary-release/〕 Whilst the pattern can be implemented very simply in most programming languages, there are libraries 〔One of many feature toggle framework list: http://www.beautifulbuilds.com/feature-toggle-frameworks-list/〕 available to further simplify usage. Martin Fowler states that a . The best solution is to find a way to . Feature-toggling is used by many large websites including Flickr,〔http://code.flickr.net/2009/12/02/flipping-out/〕 Disqus,〔http://blog.disqus.com/post/789540337/partial-deployment-with-feature-switches〕 Etsy,〔http://codeascraft.com/2011/02/04/how-does-etsy-manage-development-and-operations/〕 reddit,〔https://github.com/reddit/reddit/blob/master/r2/r2/config/feature/README.md〕 Gmail and Netflix.〔http://techblog.netflix.com/2013/11/preparing-netflix-api-for-deployment.html〕 There are many open source feature toggling and feature flagging solutions for (Java ), Angular, and Python. For a feature flagging SAAS platform, the most widely used is (LaunchDarkly ), which provides feature flags for Java, JavaScript, PHP, Python, Go, Node.JS, .NET, Ruby, Python Twisted, Android, and iOS.〔http://techcrunch.com/2015/06/04/launchdarkly-a-startup-that-helps-companies-soft-launch-features-raises-2-6m/〕 == References == 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Feature toggle」の詳細全文を読む スポンサード リンク
|